API Gateway es el servicio de AWS que te permite crear APIs públicas y privadas. AWS ofrece varias formas para hacerlo y en este artículo nos enfocaremos en como crear un mock de una REST API.
Creación del API en la consola
Lo primero que necesitas hacer es entrar a tu cuenta de AWS y buscar la opción de API Gateway.
A continuación selecciona la opción de crear una REST API pública. La UI diferirá si en la cuenta en la qué estas trabajando ya tiene REST APIs o no.
Configura las opciones de la siguiente manera:
- Protocolo: REST
- Crear API nueva: API nueva
- Nombre de API: SampleAPI
- Descripción: Una API de muestra
- Tipo de punto de enlace: Regional
Creación de un recurso
Una vez creada estarás por defecto en la sección de Recursos de tu API. Para crear un recurso, selecciona:
Acciones->Crear recurso
En este ejemplo crearemos un recurso sample. Para evitarte problemas de acceso y poder hacer pruebas siempre te recomiendo que habilites la opción de CORS. Si no sabes qué es CORS puedes revisar aquí.
*Ten en cuenta que entender CORS es importante para decidir si lo necesitas activar o no en tu proyecto, sin embargo si sólo vas a hacer pruebas no es necesario que lo entiendas aún..
Una vez creado el recurso, API Gateway mostrará la siguiente interfaz con tu recurso creado y los métodos del mismo.
*El método de OPTIONS aparece por haber habilitado la opción de CORS. Si no habilitaste esta opción, este elemento no aparecerá.
Creación de un método
Ahora agregaremos el método GET a nuestro recurso. Para ello debes selccionarlo y hacer click en:
Acciones->Crear método
En la lista selecciona GET. Y haz click en el símbolo para aceptar la creación del mismo.
Una vez creado API Gateway te pregunta acerca del tipo de integración que va a tener este método. Las opciones son para poder enlazar tu método con las mismas funciones de Lambda de AWS, con otros APIs pre-existentes (HTTP), con otros servicios de AWS, con un enlace de una VPN o para hacer una simulación/mock del API.
Para este ejemplo nosotros seleccionaremos la opción de simulación. Si bien esta opción no es muy utilizada es muy útil por si necesitas precisamente simular el funcionamiento de tu API y probar la conexión con AWS sin necesariamente trabajar en la funcionalidad de la misma.
Una vez creado el método debes ver una pantalla como esta.
Las opciones sirven para definir los parámetros, headers o body que necesitas que tengan las llamadas, y para definir las respuestas que quieres que devuelva acorde al código de respuesta de tu API. En este caso no cambiaremos ninguna. (Ya en otro post veremos mas a fondo estas opciones)
Publicación del API
Técnicamente nuestra API ya esta lista para usarse pero aún no esta publicada. ¿Cómo hacemos eso?
Fácil. Selecciona Acciones->Implementar la API
Se te abrirá una ventana en donde seleccionarás la etapa de tu API y llenarás información acerca de la implementación.
Es importante que entiendas la diferencia entre ‘implementación’ y ‘etapa’ dentro de API Gateway.
Una implementación es como una versión de tu API. Necesitarás crear una nueva implementación cada vez que hagas un cambio, ya sea agregar, cambiar o borrar algun recurso o método.
Una etapa tiene como propósito ser usada como diferentes ambientes de desarrollo de tu API, de manera que puedas hacer públicas diferentes versiones de la misma. Un caso de uso normal sería crear una para tu equipo de desarrollo en donde puedas trabajar y hacer cambios, una para QA y una o varias para la versiónes de producción.
Para este ejemplo estoy llenando las opciones con la siguiente información:
- Etapa de implementación: [Nueva etapa]
- Nombre de la fase: dev
- Descripción de etapa: Etapa de desarrollo
- Descripción de implementación: Base
Sin embargo lo puedes llenar con los datos que tu quieras.
*En este caso al no exisitir ninguna etapa previamente API Gateway me obliga a crear una al crear la implementación. Si ya tenías una etapa puedes seleccionar esa misma o crear una nueva también.
Ahora en la sección de Etapas podemos ver la etapa que seleccionamos con los recursos que creamos para esta nueva implementación.
A su vez si te vas a la pestaña de Historial de Implementaciones, podrás ver un listado con las diferentes implementaciones que hayas creado, incluyendo la que está utilizando la etapa actualmente.
Realizando una petición al API
Por último. ¿Cómo probamos que tenemos accesso a nuestra API?
Lo primero que necesitas es la URL para tu API evidentemente.
Tu API ya es pública puedes realizar la petición de la manera que tu gustes, ya sea a través de un lenguaje de programación, utilizando herramientas como cURL o algún cliente como Postman o Insomnia. En mi caso yo estoy utilizando la extensión de VSCode de Thunder Client.
En fin, al hacer la petición te darás cuenta de algo…
AWS regresa un mensaje de falta de token autorización. Lo raro es que no configuramos nada al respecto.
Esto se debe a que en realidad cometimos un error muy común a la hora de llamar a la url. Y es tan común que por eso decidí hacerlo parte de esta guía.
Nosotros no creamos un método GET para la URL base. Lo creamos para un recurso llamado sample. Por ende hay que agregar eso al path de nuestra petición.
Ahora sí veremos una respuesta exitosa (200) por parte de nuestra API.
¡Listo! Tenemos una API funcional creada en API Gateway. Evidentemente no es muy interesante lo que hace ahorita. El siguiente paso será agregarle respuestas y requerimientos más interesantes.